package com.team.controller;

import com.team.entity.Role;
import com.team.service.RoleService;
import com.team.vo.Result;
import com.team.vo.RoleVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author WHZ
 * @date 2022年10月14日 18:25
 */
@RestController
@RequestMapping("/role")
public class RoleController {
    @Autowired
    private RoleService roleService;

    /**
     * 根据id删除角色
     * @param role
     * @return
     */
    @RequestMapping("/delectRole")
    public Result delectRole(@RequestBody Role role){
        return roleService.delectRole(role.getId());
    }

    /**
     * 修改角色描述
     * @param role
     * @return
     */
    @RequestMapping("/updateRoleDescribe")
    public Result updateRoleDescribe(@RequestBody Role role){
        return roleService.updateRoleDescribe(role);
    }

    /**
     * 查看角色所对应的描述
     * @param
     * @return
     */
    @RequestMapping("/roleDescribe")
    public Result roleDescribe(){
        return roleService.roleDescribe();
    }

    /**
     * 添加角色
     * @param record
     * @return
     */
    @RequestMapping("/insert")
    public Result insert(@RequestBody Role record){
        return roleService.insert(record);
    }

    /**
     * 查询全部角色
     * @return
     */
    @RequestMapping("/selectAll")
    public Result selectAll(){
        return roleService.selectAll();
    }

    /**
     * 获取角色并分页
     * @param
     * @return
     */
    @RequestMapping("/findByCondition")
    public Result findByCondition(@RequestParam(defaultValue = "1") Integer currentPage,
                                  @RequestParam(defaultValue = "5") Integer pageSize,
                                  @RequestBody RoleVo roleVo){
        return roleService.findByCondition(currentPage, pageSize, roleVo);
    }

    /**
     * 根据员工id查找该员工拥有的角色
     *
     * @author 太阳偷渡青山
     * @param adminId 管理员id
     * @return {@link Result}
     */

    @GetMapping("findAdminId")
    public Result list(Integer adminId){
        return roleService.findByAdminId(adminId);
    }

    /**
     * 编辑该员工的角色
     *
     * @author 太阳偷渡青山
     * @param adminId 管理员id
     * @param roleIds 角色id
     * @return {@link Result}
     */
    @RequestMapping("editRole")
    public Result editRole(Integer adminId , Integer[] roleIds){
        return roleService.editRole(adminId, roleIds);
    }
}
